import 'package:enjoy_plus_hm/utils/http.dart';
import 'package:enjoy_plus_hm/utils/toast.dart';
import 'package:flutter/material.dart';

import 'components/home_list.dart';
import 'components/home_nav.dart';

class HomePage extends StatefulWidget {
  const HomePage({super.key});

  /// 创建 [HomePage] 的状态对象
  ///
  /// 重写此方法以返回 [HomePage] 的 [State] 对象，即 [_HomePageState]
  /// 主要用于框架内部，以实现有状态小部件的状态管理
  @override
  State<HomePage> createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  // 公告 数据源
  List notifyList = [];
  // 数据初始化
  @override
  void initState() {
    super.initState();
    getNotifyList();
  }

  // 获取公告数据
  getNotifyList() async {
    try {
      final res = await MyHttp.get('/announcement');
      // print(res);
      if (res['code'] != 10000) {
        return ToastUtil.showError('获取数据失败');
      } else {
        ToastUtil.showSuccess('获取公告成功');
        setState(() {
          notifyList = res['data'];
        });
      }
    } catch (e) {
      // print(e);
      ToastUtil.showInfo('网路请求错误');
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('HomePage'),
        // 透明色
        backgroundColor: Colors.transparent,
        centerTitle: true,
      ),
      // 主体内容
      body: ListView(
        // 样式
        padding: const EdgeInsets.all(10),
        children: [
          // 导航栏
          HomeNav(),
          // 广告
          // 使用 ClipRRect 小部件进行圆形裁剪
          // ClipRRect 是一个 Flutter 小部件，用于按照矩形形状和圆角半径裁剪其子小部件
          // 它常用于实现圆形或圆角图像的效果，以及对界面元素进行形状设计
          // 通过设置 borderRadius 属性，可以控制圆角的大小，从而实现从方形到圆形的过渡
          ClipRRect(
              borderRadius: BorderRadius.circular(10),
              child: Image.asset(
                'assets/images/banner@2x.jpg',
              )),

          // 社区公告内容-传值notifyList
          HomeList(
            notifyList: notifyList,
          )
        ],
      ),
    );
  }
}
